package cmm;// Generated from C:/Users/13422/Documents/������ѧ��/������/cmm/src/main/java\CMM.g4 by ANTLR 4.7
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link CMMParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface CMMVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link CMMParser#program}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitProgram(CMMParser.ProgramContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitStatement(CMMParser.StatementContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#expr_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExpr_stat(CMMParser.Expr_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#decl_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDecl_stat(CMMParser.Decl_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#arr_decl_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArr_decl_stat(CMMParser.Arr_decl_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#assign_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAssign_stat(CMMParser.Assign_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#identifier}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIdentifier(CMMParser.IdentifierContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#if_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIf_stat(CMMParser.If_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#block}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBlock(CMMParser.BlockContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#while_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhile_stat(CMMParser.While_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#break_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBreak_stat(CMMParser.Break_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#read_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRead_stat(CMMParser.Read_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#write_stat}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWrite_stat(CMMParser.Write_statContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExpr(CMMParser.ExprContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#cal_expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitCal_expr(CMMParser.Cal_exprContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#mul_expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMul_expr(CMMParser.Mul_exprContext ctx);
	/**
	 * Visit a parse tree produced by {@link CMMParser#atom}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAtom(CMMParser.AtomContext ctx);
}